home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v10n04.arc / COLOR.PRG < prev    next >
Text File  |  1991-02-01  |  4KB  |  189 lines

  1. *
  2. * COLOR.PRG  - Example use of COLORPAR.PRG
  3. *
  4. SET PROCEDURE TO COLOR
  5. ClrVar=""
  6. ScrBuff = SAVESCREEN(4,21,17,56)     && Save screen area
  7. @  4,21 CLEAR TO 17,56               && Clear the area
  8. @  4,21 TO 17,56                     && Box the area
  9. DO COLORPAR WITH ClrVar, 5, 22       && Get color pair
  10. RESTSCREEN(4,21,17,56,ScrBuff)       && Restore screen area
  11. RETURN
  12.  
  13. *****************************************************************
  14. * COLORPAR - Displays a grid from which you can choose a color pair *
  15. * Usage:  DO COLORPAR WITH ClrVar, Irow, Icol
  16. * Where:  ClrVar will hold the resulting color pair
  17. *         Irow is the starting row position for display
  18. *         Icol is the starting column position for display
  19. *
  20. * Example: DO COLORPAR WITH WinClr, 10, 20
  21. *****************************************************************
  22. PROCEDURE COLORPAR
  23. PARAMETERS CLRVAR, IROW, ICOL
  24. PRIVATE SAVECLR, SAVEBLK
  25.  
  26. SAVEBLK = SETBLINK()            && Clipper 5.0 specific
  27. SAVECLR = SETCOLOR()            && Save current color
  28. SETBLINK(.F.)                   && Clipper 5.0 specific
  29.  
  30. STORE CHR(07) TO COR
  31.  
  32. @ IROW, ICOL+2 SAY "Select Color:"
  33.  
  34. IROW = IROW + 1
  35.  
  36. DECLARE BACK[8]
  37. BACK[1] = "W"
  38. BACK[2] = "N"
  39. BACK[3] = "B"
  40. BACK[4] = "G"
  41. BACK[5] = "BR"
  42. BACK[6] = "BG"
  43. BACK[7] = "GR"
  44. BACK[8] = "R"
  45.  
  46. DECLARE FORE[32]
  47. FORE[1] = "W+"
  48. FORE[2] = "W"
  49. FORE[3] = "W+*"
  50. FORE[4] = "W*"
  51. FORE[5] = "B+"
  52. FORE[6] = "B"
  53. FORE[7] = "B+*"
  54. FORE[8] = "B*"
  55. FORE[9] = "G+"
  56. FORE[10]= "G"
  57. FORE[11]= "G+*"
  58. FORE[12]= "G*"
  59. FORE[13]= "R+"
  60. FORE[14]= "R"
  61. FORE[15]= "R+*"
  62. FORE[16]= "R*"
  63. FORE[17]= "BR+"
  64. FORE[18]= "BR"
  65. FORE[19]= "BR+*"
  66. FORE[20]= "BR*"
  67. FORE[21]= "GR+"
  68. FORE[22]= "GR"
  69. FORE[23]= "GR+*"
  70. FORE[24]= "GR*"
  71. FORE[25]= "BG+"
  72. FORE[26]= "BG"
  73. FORE[27]= "BG+*"
  74. FORE[28]= "BG*"
  75. FORE[29]= "N+"
  76. FORE[30]= "N"
  77. FORE[31]= "N+*"
  78. FORE[32]= "N*"
  79.  
  80. FOR B = 1 TO 8
  81.    FOR F = 1 TO 32
  82.       SETCOR=FORE[F]+"/"+BACK[B]
  83.       SET COLOR TO &SETCOR
  84.       @ IROW+B,ICOL+F SAY COR
  85.    NEXT
  86. NEXT
  87.  
  88. ROW=IROW+1
  89. COL=ICOL+1
  90. BACKCOR=1
  91. FORECOR=1
  92.  
  93. SET CURSOR OFF
  94.  
  95. DO WHILE .T.
  96.    CELLCOR=FORE[FORECOR]+"/"+BACK[BACKCOR]
  97.    SET COLOR TO &CELLCOR
  98.  
  99.    @ ROW,COL SAY "X"
  100.    @ IROW+8+2, ICOL+8 SAY "This is a sample."
  101.  
  102.    INKEY(0)
  103.  
  104.    @ ROW,COL SAY COR
  105.  
  106.    DO CASE
  107.  
  108.     CASE LASTKEY()=4                            &&RIGHT
  109.       DO CASE
  110.        CASE FORECOR=32 .AND. BACKCOR=8
  111.          FORECOR=1
  112.          BACKCOR=1
  113.          ROW=ROW-7
  114.          COL=COL-31
  115.        CASE FORECOR=32 .AND. BACKCOR<8
  116.          FORECOR=1
  117.          BACKCOR=BACKCOR+1
  118.          ROW=ROW+1
  119.          COL=COL-31
  120.        OTHERWISE
  121.          COL=COL+1
  122.          FORECOR=FORECOR+1
  123.       ENDCASE
  124.  
  125.     CASE LASTKEY()=19                           &&LEFT
  126.       DO CASE
  127.        CASE FORECOR=1 .AND. BACKCOR=1
  128.          FORECOR=32
  129.          BACKCOR=8
  130.          ROW=ROW+7
  131.          COL=COL+31
  132.        CASE FORECOR=1 .AND. BACKCOR>1
  133.          FORECOR=32
  134.          BACKCOR=BACKCOR-1
  135.          ROW=ROW-1
  136.          COL=COL+31
  137.        OTHERWISE
  138.          COL=COL-1
  139.          FORECOR=FORECOR-1
  140.       ENDCASE
  141.  
  142.     CASE LASTKEY()=5                            &&UP
  143.       DO CASE
  144.        CASE FORECOR=1 .AND. BACKCOR=1
  145.          FORECOR=32
  146.          BACKCOR=8
  147.          ROW=ROW+7
  148.          COL=COL+31
  149.        CASE FORECOR>1 .AND. BACKCOR=1
  150.          FORECOR=FORECOR-1
  151.          BACKCOR=BACKCOR+7
  152.          ROW=ROW+7
  153.          COL=COL-1
  154.        OTHERWISE
  155.          ROW=ROW-1
  156.          BACKCOR=BACKCOR-1
  157.       ENDCASE
  158.  
  159.     CASE LASTKEY()=24                           &&DOWN
  160.       DO CASE
  161.        CASE FORECOR=32 .AND. BACKCOR=8
  162.          FORECOR=1
  163.          BACKCOR=1
  164.          ROW=ROW-7
  165.          COL=COL-31
  166.        CASE FORECOR<32 .AND. BACKCOR=8
  167.          FORECOR=FORECOR+1
  168.          BACKCOR=BACKCOR-7
  169.          ROW=ROW-7
  170.          COL=COL+1
  171.        OTHERWISE
  172.          ROW=ROW+1
  173.          BACKCOR=BACKCOR+1
  174.       ENDCASE
  175.  
  176.     CASE LASTKEY()=13                           &&ENTER
  177.       EXIT
  178.  
  179.     OTHERWISE
  180.       LOOP
  181.    ENDCASE
  182.  
  183. ENDDO
  184. SET CURSOR ON
  185. CLRVAR = FORE[FORECOR]+"/"+BACK[BACKCOR]
  186. SET COLOR TO &SAVECLR                  && Restore original color
  187. SETBLINK(SAVEBLK)                      && Clipper 5.0 specific
  188. RETURN
  189.